<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>CmdMessenger: CommandMessenger.CmdMessenger Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">CmdMessenger
   &#160;<span id="projectnumber">4.0.0</span>
   </div>
   <div id="projectbrief">CmdMessenger is a serial port messaging library for the .Net / Mono Platform.</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespace_command_messenger.html">CommandMessenger</a>      </li>
      <li class="navelem"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html">CmdMessenger</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="#events">Events</a>  </div>
  <div class="headertitle">
<div class="title">CommandMessenger.CmdMessenger Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="CommandMessenger::CmdMessenger" -->
<p><a class="el" href="class_command_messenger_1_1_command.html" title="A command to be send by CmdMessenger.">Command</a> messenger main class.  
 <a href="class_command_messenger_1_1_cmd_messenger.html#details">More...</a></p>

<p><a href="class_command_messenger_1_1_cmd_messenger-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">delegate void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a72a17f15d73955a00f565d86b5216aed">MessengerCallbackFunction</a> (<a class="el" href="class_command_messenger_1_1_received_command.html">ReceivedCommand</a> receivedCommand)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of the messenger callback function.  <a href="#a72a17f15d73955a00f565d86b5216aed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a8e3a83354307790b2210c5ed949befd9">CmdMessenger</a> (<a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a> transport, BoardType boardType=BoardType.Bit16)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a8e3a83354307790b2210c5ed949befd9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#aa2a70c2181bd0fb2f274949d267e96a6">CmdMessenger</a> (<a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a> transport, int sendBufferMaxLength, BoardType boardType=BoardType.Bit16)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#aa2a70c2181bd0fb2f274949d267e96a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a4a0539f2a3402a1877c73cf0d2ac6e30">CmdMessenger</a> (<a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a> transport, BoardType boardType, char fieldSeparator)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a4a0539f2a3402a1877c73cf0d2ac6e30"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a07f259b58bd33f12032c3f6accc104c2">CmdMessenger</a> (<a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a> transport, BoardType boardType, char fieldSeparator, int sendBufferMaxLength)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a07f259b58bd33f12032c3f6accc104c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a24ef21cee6257531a2ab03843ba67437">CmdMessenger</a> (<a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a> transport, BoardType boardType, char fieldSeparator, char commandSeparator)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a24ef21cee6257531a2ab03843ba67437"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a5a3a06647f08e5ca31c8536627659f40">CmdMessenger</a> (<a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a> transport, BoardType boardType, char fieldSeparator, char commandSeparator, char escapeCharacter, int sendBufferMaxLength)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a5a3a06647f08e5ca31c8536627659f40"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a9f3d3346f3af310e4835c24d937974b0">Dispose</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Disposal of <a class="el" href="class_command_messenger_1_1_cmd_messenger.html" title="Command messenger main class.">CmdMessenger</a>.  <a href="#a9f3d3346f3af310e4835c24d937974b0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#ac41ea118c4f01b8d88f6546feeb8b9cd">SetControlToInvokeOn</a> (Control controlToInvokeOn)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a control to invoke on.  <a href="#ac41ea118c4f01b8d88f6546feeb8b9cd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a42c68036bd9e5dded9cbffb6a6242de9">Disconnect</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop listening and end serial port connection.  <a href="#a42c68036bd9e5dded9cbffb6a6242de9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#ab0392f0afcae4fc13873f5a0d1353328">Connect</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts serial port connection and start listening.  <a href="#ab0392f0afcae4fc13873f5a0d1353328"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#afd4efbc74d716406919ed54a2ec57cd7">Attach</a> (<a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a72a17f15d73955a00f565d86b5216aed">MessengerCallbackFunction</a> newFunction)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches default callback for unsupported commands.  <a href="#afd4efbc74d716406919ed54a2ec57cd7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a747bf16fde8067a021f25b4fef95c616">Attach</a> (int messageId, <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a72a17f15d73955a00f565d86b5216aed">MessengerCallbackFunction</a> newFunction)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches default callback for certain Message ID.  <a href="#a747bf16fde8067a021f25b4fef95c616"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_command_messenger_1_1_received_command.html">ReceivedCommand</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#aa68ff56b1f56f00bbff4b7dc00e0366e">SendCommand</a> (<a class="el" href="class_command_messenger_1_1_send_command.html">SendCommand</a> sendCommand, SendQueue sendQueueState=SendQueue.InFrontQueue, ReceiveQueue receiveQueueState=ReceiveQueue.Default)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a command. If no command acknowledge is requested, the command will be send asynchronously: it will be put on the top of the send queue If a command acknowledge is requested, the command will be send synchronously: the program will block until the acknowledge command has been received or the timeout has expired. Based on ClearQueueState, the send- and receive-queues are left intact or are cleared.  <a href="#aa68ff56b1f56f00bbff4b7dc00e0366e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_command_messenger_1_1_received_command.html">ReceivedCommand</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#afd95776c37b456660334eaa0aed5d994">SendCommand</a> (<a class="el" href="class_command_messenger_1_1_send_command.html">SendCommand</a> sendCommand, SendQueue sendQueueState, ReceiveQueue receiveQueueState, UseQueue useQueue)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a command. If no command acknowledge is requested, the command will be send asynchronously: it will be put on the top of the send queue If a command acknowledge is requested, the command will be send synchronously: the program will block until the acknowledge command has been received or the timeout has expired. Based on ClearQueueState, the send- and receive-queues are left intact or are cleared.  <a href="#afd95776c37b456660334eaa0aed5d994"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_command_messenger_1_1_received_command.html">ReceivedCommand</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a788986ebb510ecd99c7f7a45ad424cc8">SendCommandSync</a> (<a class="el" href="class_command_messenger_1_1_send_command.html">SendCommand</a> sendCommand, SendQueue sendQueueState)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronized send a command.  <a href="#a788986ebb510ecd99c7f7a45ad424cc8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a0398d0d8f45a1c6b02df018dbb13f6b9">QueueCommand</a> (<a class="el" href="class_command_messenger_1_1_send_command.html">SendCommand</a> sendCommand)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Put the command at the back of the sent queue.  <a href="#a0398d0d8f45a1c6b02df018dbb13f6b9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a563309c8b82007422f89889bff4cd5c0">QueueCommand</a> (<a class="el" href="class_command_messenger_1_1_queue_1_1_command_strategy.html">CommandStrategy</a> commandStrategy)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a command wrapped in a strategy at the back of the sent queue.  <a href="#a563309c8b82007422f89889bff4cd5c0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a6c3d2d6ec4fb5ee96172872436051b14">AddReceiveCommandStrategy</a> (<a class="el" href="class_command_messenger_1_1_queue_1_1_general_strategy.html">GeneralStrategy</a> generalStrategy)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a general command strategy to the receive queue. This will be executed on every enqueued and dequeued command.  <a href="#a6c3d2d6ec4fb5ee96172872436051b14"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a9854dc7e6cd10aa09eff588365d22b6c">AddSendCommandStrategy</a> (<a class="el" href="class_command_messenger_1_1_queue_1_1_general_strategy.html">GeneralStrategy</a> generalStrategy)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a general command strategy to the send queue. This will be executed on every enqueued and dequeued command.  <a href="#a9854dc7e6cd10aa09eff588365d22b6c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a9bbd561bcf2b0afc79f3cf6a3afbe6f8">ClearReceiveQueue</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the receive queue.  <a href="#a9bbd561bcf2b0afc79f3cf6a3afbe6f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a6cb2b4efc0ee8d27535bc1b53e3bf537">ClearSendQueue</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the send queue.  <a href="#a6cb2b4efc0ee8d27535bc1b53e3bf537"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62ef08af3ad36b23bc8ea1789247891d"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::Dispose" ref="a62ef08af3ad36b23bc8ea1789247891d" args="(bool disposing)" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>Dispose</b> (bool disposing)</td></tr>
<tr><td colspan="2"><h2><a name="properties"></a>
Properties</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#accab332ea5b404ac26f9b679327d8e29">PrintLfCr</a><code> [get, set]</code></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or sets a whether to print a line feed carriage return after each command.  <a href="#accab332ea5b404ac26f9b679327d8e29"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Control&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#af648ee8923f39bb52472a363f18d4263">ControlToInvokeOn</a><code> [get, set]</code></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The control to invoke the callback on.  <a href="#af648ee8923f39bb52472a363f18d4263"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#affed4f13807df660e56d6cbf8f8110a8">LastReceivedCommandTimeStamp</a><code> [get]</code></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets or sets the time stamp of the last command line received.  <a href="#affed4f13807df660e56d6cbf8f8110a8"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="events"></a>
Events</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EventHandler&lt; <a class="el" href="class_command_messenger_1_1_command_event_args.html">CommandEventArgs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a3a4eb4de94585a19bd0d6787487ac88b">NewLineReceived</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Event handler for one or more lines received.  <a href="#a3a4eb4de94585a19bd0d6787487ac88b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EventHandler&lt; <a class="el" href="class_command_messenger_1_1_command_event_args.html">CommandEventArgs</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#aa1c1d34c294fbd9bc8c1594be0e46dce">NewLineSent</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Event handler for a new line sent.  <a href="#aa1c1d34c294fbd9bc8c1594be0e46dce"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p><a class="el" href="class_command_messenger_1_1_command.html" title="A command to be send by CmdMessenger.">Command</a> messenger main class. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a8e3a83354307790b2210c5ed949befd9"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::CmdMessenger" ref="a8e3a83354307790b2210c5ed949befd9" args="(ITransport transport, BoardType boardType=BoardType.Bit16)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a8e3a83354307790b2210c5ed949befd9">CommandMessenger.CmdMessenger.CmdMessenger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a>&#160;</td>
          <td class="paramname"><em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BoardType&#160;</td>
          <td class="paramname"><em>boardType</em> = <code>BoardType.Bit16</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">transport</td><td>The transport layer. </td></tr>
    <tr><td class="paramname">boardType</td><td>Embedded Processor type. Needed to translate variables between sides. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa2a70c2181bd0fb2f274949d267e96a6"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::CmdMessenger" ref="aa2a70c2181bd0fb2f274949d267e96a6" args="(ITransport transport, int sendBufferMaxLength, BoardType boardType=BoardType.Bit16)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a8e3a83354307790b2210c5ed949befd9">CommandMessenger.CmdMessenger.CmdMessenger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a>&#160;</td>
          <td class="paramname"><em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sendBufferMaxLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BoardType&#160;</td>
          <td class="paramname"><em>boardType</em> = <code>BoardType.Bit16</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">transport</td><td>The transport layer. </td></tr>
    <tr><td class="paramname">sendBufferMaxLength</td><td>The maximum size of the send buffer</td></tr>
    <tr><td class="paramname">boardType</td><td>Embedded Processor type. Needed to translate variables between sides. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4a0539f2a3402a1877c73cf0d2ac6e30"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::CmdMessenger" ref="a4a0539f2a3402a1877c73cf0d2ac6e30" args="(ITransport transport, BoardType boardType, char fieldSeparator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a8e3a83354307790b2210c5ed949befd9">CommandMessenger.CmdMessenger.CmdMessenger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a>&#160;</td>
          <td class="paramname"><em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BoardType&#160;</td>
          <td class="paramname"><em>boardType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>fieldSeparator</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">transport</td><td>The transport layer. </td></tr>
    <tr><td class="paramname">boardType</td><td>Embedded Processor type. Needed to translate variables between sides. </td></tr>
    <tr><td class="paramname">fieldSeparator</td><td>The field separator. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a07f259b58bd33f12032c3f6accc104c2"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::CmdMessenger" ref="a07f259b58bd33f12032c3f6accc104c2" args="(ITransport transport, BoardType boardType, char fieldSeparator, int sendBufferMaxLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a8e3a83354307790b2210c5ed949befd9">CommandMessenger.CmdMessenger.CmdMessenger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a>&#160;</td>
          <td class="paramname"><em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BoardType&#160;</td>
          <td class="paramname"><em>boardType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>fieldSeparator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sendBufferMaxLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">transport</td><td>The transport layer. </td></tr>
    <tr><td class="paramname">boardType</td><td>Embedded Processor type. Needed to translate variables between sides. </td></tr>
    <tr><td class="paramname">fieldSeparator</td><td>The field separator. </td></tr>
    <tr><td class="paramname">sendBufferMaxLength</td><td>The maximum size of the send buffer</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a24ef21cee6257531a2ab03843ba67437"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::CmdMessenger" ref="a24ef21cee6257531a2ab03843ba67437" args="(ITransport transport, BoardType boardType, char fieldSeparator, char commandSeparator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a8e3a83354307790b2210c5ed949befd9">CommandMessenger.CmdMessenger.CmdMessenger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a>&#160;</td>
          <td class="paramname"><em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BoardType&#160;</td>
          <td class="paramname"><em>boardType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>fieldSeparator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>commandSeparator</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">transport</td><td>The transport layer. </td></tr>
    <tr><td class="paramname">boardType</td><td>Embedded Processor type. Needed to translate variables between sides. </td></tr>
    <tr><td class="paramname">fieldSeparator</td><td>The field separator. </td></tr>
    <tr><td class="paramname">commandSeparator</td><td>The command separator. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5a3a06647f08e5ca31c8536627659f40"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::CmdMessenger" ref="a5a3a06647f08e5ca31c8536627659f40" args="(ITransport transport, BoardType boardType, char fieldSeparator, char commandSeparator, char escapeCharacter, int sendBufferMaxLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a8e3a83354307790b2210c5ed949befd9">CommandMessenger.CmdMessenger.CmdMessenger</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="interface_command_messenger_1_1_transport_1_1_i_transport.html">ITransport</a>&#160;</td>
          <td class="paramname"><em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BoardType&#160;</td>
          <td class="paramname"><em>boardType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>fieldSeparator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>commandSeparator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>escapeCharacter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sendBufferMaxLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">transport</td><td>The transport layer. </td></tr>
    <tr><td class="paramname">boardType</td><td>Embedded Processor type. Needed to translate variables between sides. </td></tr>
    <tr><td class="paramname">fieldSeparator</td><td>The field separator. </td></tr>
    <tr><td class="paramname">commandSeparator</td><td>The command separator. </td></tr>
    <tr><td class="paramname">escapeCharacter</td><td>The escape character. </td></tr>
    <tr><td class="paramname">sendBufferMaxLength</td><td>The maximum size of the send buffer</td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6c3d2d6ec4fb5ee96172872436051b14"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::AddReceiveCommandStrategy" ref="a6c3d2d6ec4fb5ee96172872436051b14" args="(GeneralStrategy generalStrategy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a6c3d2d6ec4fb5ee96172872436051b14">CommandMessenger.CmdMessenger.AddReceiveCommandStrategy</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_queue_1_1_general_strategy.html">GeneralStrategy</a>&#160;</td>
          <td class="paramname"><em>generalStrategy</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds a general command strategy to the receive queue. This will be executed on every enqueued and dequeued command. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">generalStrategy</td><td>The general strategy for the receive queue. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9854dc7e6cd10aa09eff588365d22b6c"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::AddSendCommandStrategy" ref="a9854dc7e6cd10aa09eff588365d22b6c" args="(GeneralStrategy generalStrategy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a9854dc7e6cd10aa09eff588365d22b6c">CommandMessenger.CmdMessenger.AddSendCommandStrategy</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_queue_1_1_general_strategy.html">GeneralStrategy</a>&#160;</td>
          <td class="paramname"><em>generalStrategy</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds a general command strategy to the send queue. This will be executed on every enqueued and dequeued command. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">generalStrategy</td><td>The general strategy for the send queue. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afd4efbc74d716406919ed54a2ec57cd7"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::Attach" ref="afd4efbc74d716406919ed54a2ec57cd7" args="(MessengerCallbackFunction newFunction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#afd4efbc74d716406919ed54a2ec57cd7">CommandMessenger.CmdMessenger.Attach</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a72a17f15d73955a00f565d86b5216aed">MessengerCallbackFunction</a>&#160;</td>
          <td class="paramname"><em>newFunction</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Attaches default callback for unsupported commands. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">newFunction</td><td>The callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a747bf16fde8067a021f25b4fef95c616"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::Attach" ref="a747bf16fde8067a021f25b4fef95c616" args="(int messageId, MessengerCallbackFunction newFunction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#afd4efbc74d716406919ed54a2ec57cd7">CommandMessenger.CmdMessenger.Attach</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>messageId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a72a17f15d73955a00f565d86b5216aed">MessengerCallbackFunction</a>&#160;</td>
          <td class="paramname"><em>newFunction</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Attaches default callback for certain Message ID. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">messageId</td><td><a class="el" href="class_command_messenger_1_1_command.html" title="A command to be send by CmdMessenger.">Command</a> ID. </td></tr>
    <tr><td class="paramname">newFunction</td><td>The callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9bbd561bcf2b0afc79f3cf6a3afbe6f8"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::ClearReceiveQueue" ref="a9bbd561bcf2b0afc79f3cf6a3afbe6f8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a9bbd561bcf2b0afc79f3cf6a3afbe6f8">CommandMessenger.CmdMessenger.ClearReceiveQueue</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clears the receive queue. </p>

</div>
</div>
<a class="anchor" id="a6cb2b4efc0ee8d27535bc1b53e3bf537"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::ClearSendQueue" ref="a6cb2b4efc0ee8d27535bc1b53e3bf537" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a6cb2b4efc0ee8d27535bc1b53e3bf537">CommandMessenger.CmdMessenger.ClearSendQueue</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clears the send queue. </p>

</div>
</div>
<a class="anchor" id="ab0392f0afcae4fc13873f5a0d1353328"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::Connect" ref="ab0392f0afcae4fc13873f5a0d1353328" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#ab0392f0afcae4fc13873f5a0d1353328">CommandMessenger.CmdMessenger.Connect</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Starts serial port connection and start listening. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if it succeeds, false if it fails. </dd></dl>

</div>
</div>
<a class="anchor" id="a42c68036bd9e5dded9cbffb6a6242de9"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::Disconnect" ref="a42c68036bd9e5dded9cbffb6a6242de9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a42c68036bd9e5dded9cbffb6a6242de9">CommandMessenger.CmdMessenger.Disconnect</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Stop listening and end serial port connection. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if it succeeds, false if it fails. </dd></dl>

</div>
</div>
<a class="anchor" id="a9f3d3346f3af310e4835c24d937974b0"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::Dispose" ref="a9f3d3346f3af310e4835c24d937974b0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a9f3d3346f3af310e4835c24d937974b0">CommandMessenger.CmdMessenger.Dispose</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Disposal of <a class="el" href="class_command_messenger_1_1_cmd_messenger.html" title="Command messenger main class.">CmdMessenger</a>. </p>

</div>
</div>
<a class="anchor" id="a72a17f15d73955a00f565d86b5216aed"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::MessengerCallbackFunction" ref="a72a17f15d73955a00f565d86b5216aed" args="(ReceivedCommand receivedCommand)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">delegate void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a72a17f15d73955a00f565d86b5216aed">CommandMessenger.CmdMessenger.MessengerCallbackFunction</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_received_command.html">ReceivedCommand</a>&#160;</td>
          <td class="paramname"><em>receivedCommand</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition of the messenger callback function. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">receivedCommand</td><td>The received command. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0398d0d8f45a1c6b02df018dbb13f6b9"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::QueueCommand" ref="a0398d0d8f45a1c6b02df018dbb13f6b9" args="(SendCommand sendCommand)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a0398d0d8f45a1c6b02df018dbb13f6b9">CommandMessenger.CmdMessenger.QueueCommand</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_send_command.html">SendCommand</a>&#160;</td>
          <td class="paramname"><em>sendCommand</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Put the command at the back of the sent queue. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sendCommand</td><td>The command to sent. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a563309c8b82007422f89889bff4cd5c0"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::QueueCommand" ref="a563309c8b82007422f89889bff4cd5c0" args="(CommandStrategy commandStrategy)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a0398d0d8f45a1c6b02df018dbb13f6b9">CommandMessenger.CmdMessenger.QueueCommand</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_queue_1_1_command_strategy.html">CommandStrategy</a>&#160;</td>
          <td class="paramname"><em>commandStrategy</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Put a command wrapped in a strategy at the back of the sent queue. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">commandStrategy</td><td>The command strategy. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa68ff56b1f56f00bbff4b7dc00e0366e"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::SendCommand" ref="aa68ff56b1f56f00bbff4b7dc00e0366e" args="(SendCommand sendCommand, SendQueue sendQueueState=SendQueue.InFrontQueue, ReceiveQueue receiveQueueState=ReceiveQueue.Default)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_received_command.html">ReceivedCommand</a> <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#aa68ff56b1f56f00bbff4b7dc00e0366e">CommandMessenger.CmdMessenger.SendCommand</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_send_command.html">SendCommand</a>&#160;</td>
          <td class="paramname"><em>sendCommand</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SendQueue&#160;</td>
          <td class="paramname"><em>sendQueueState</em> = <code>SendQueue.InFrontQueue</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ReceiveQueue&#160;</td>
          <td class="paramname"><em>receiveQueueState</em> = <code>ReceiveQueue.Default</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a command. If no command acknowledge is requested, the command will be send asynchronously: it will be put on the top of the send queue If a command acknowledge is requested, the command will be send synchronously: the program will block until the acknowledge command has been received or the timeout has expired. Based on ClearQueueState, the send- and receive-queues are left intact or are cleared. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sendCommand</td><td>The command to sent. </td></tr>
    <tr><td class="paramname">sendQueueState</td><td>Property to optionally clear/wait the send queue</td></tr>
    <tr><td class="paramname">receiveQueueState</td><td>Property to optionally clear/wait the send queue</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A received command. The received command will only be valid if the ReqAc of the command is true. </dd></dl>

</div>
</div>
<a class="anchor" id="afd95776c37b456660334eaa0aed5d994"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::SendCommand" ref="afd95776c37b456660334eaa0aed5d994" args="(SendCommand sendCommand, SendQueue sendQueueState, ReceiveQueue receiveQueueState, UseQueue useQueue)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_received_command.html">ReceivedCommand</a> <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#aa68ff56b1f56f00bbff4b7dc00e0366e">CommandMessenger.CmdMessenger.SendCommand</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_send_command.html">SendCommand</a>&#160;</td>
          <td class="paramname"><em>sendCommand</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SendQueue&#160;</td>
          <td class="paramname"><em>sendQueueState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ReceiveQueue&#160;</td>
          <td class="paramname"><em>receiveQueueState</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UseQueue&#160;</td>
          <td class="paramname"><em>useQueue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a command. If no command acknowledge is requested, the command will be send asynchronously: it will be put on the top of the send queue If a command acknowledge is requested, the command will be send synchronously: the program will block until the acknowledge command has been received or the timeout has expired. Based on ClearQueueState, the send- and receive-queues are left intact or are cleared. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sendCommand</td><td>The command to sent. </td></tr>
    <tr><td class="paramname">sendQueueState</td><td>Property to optionally clear/wait the send queue</td></tr>
    <tr><td class="paramname">receiveQueueState</td><td>Property to optionally clear/wait the send queue</td></tr>
    <tr><td class="paramname">useQueue</td><td>Property to optionally bypass the queue</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A received command. The received command will only be valid if the ReqAc of the command is true. </dd></dl>

</div>
</div>
<a class="anchor" id="a788986ebb510ecd99c7f7a45ad424cc8"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::SendCommandSync" ref="a788986ebb510ecd99c7f7a45ad424cc8" args="(SendCommand sendCommand, SendQueue sendQueueState)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_command_messenger_1_1_received_command.html">ReceivedCommand</a> <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a788986ebb510ecd99c7f7a45ad424cc8">CommandMessenger.CmdMessenger.SendCommandSync</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_command_messenger_1_1_send_command.html">SendCommand</a>&#160;</td>
          <td class="paramname"><em>sendCommand</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SendQueue&#160;</td>
          <td class="paramname"><em>sendQueueState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Synchronized send a command. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sendCommand</td><td>The command to sent. </td></tr>
    <tr><td class="paramname">sendQueueState</td><td>Property to optionally clear/wait the send queue. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>. </dd></dl>

</div>
</div>
<a class="anchor" id="ac41ea118c4f01b8d88f6546feeb8b9cd"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::SetControlToInvokeOn" ref="ac41ea118c4f01b8d88f6546feeb8b9cd" args="(Control controlToInvokeOn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#ac41ea118c4f01b8d88f6546feeb8b9cd">CommandMessenger.CmdMessenger.SetControlToInvokeOn</a> </td>
          <td>(</td>
          <td class="paramtype">Control&#160;</td>
          <td class="paramname"><em>controlToInvokeOn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets a control to invoke on. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">controlToInvokeOn</td><td>The control to invoke on. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Property Documentation</h2>
<a class="anchor" id="af648ee8923f39bb52472a363f18d4263"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::ControlToInvokeOn" ref="af648ee8923f39bb52472a363f18d4263" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Control <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#af648ee8923f39bb52472a363f18d4263">CommandMessenger.CmdMessenger.ControlToInvokeOn</a><code> [get, set]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The control to invoke the callback on. </p>

</div>
</div>
<a class="anchor" id="affed4f13807df660e56d6cbf8f8110a8"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::LastReceivedCommandTimeStamp" ref="affed4f13807df660e56d6cbf8f8110a8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#affed4f13807df660e56d6cbf8f8110a8">CommandMessenger.CmdMessenger.LastReceivedCommandTimeStamp</a><code> [get]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets or sets the time stamp of the last command line received. </p>
<p>The last line time stamp. </p>

</div>
</div>
<a class="anchor" id="accab332ea5b404ac26f9b679327d8e29"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::PrintLfCr" ref="accab332ea5b404ac26f9b679327d8e29" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#accab332ea5b404ac26f9b679327d8e29">CommandMessenger.CmdMessenger.PrintLfCr</a><code> [get, set]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets or sets a whether to print a line feed carriage return after each command. </p>
<p>true if print line feed carriage return, false if not. </p>

</div>
</div>
<hr/><h2>Event Documentation</h2>
<a class="anchor" id="a3a4eb4de94585a19bd0d6787487ac88b"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::NewLineReceived" ref="a3a4eb4de94585a19bd0d6787487ac88b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EventHandler&lt;<a class="el" href="class_command_messenger_1_1_command_event_args.html">CommandEventArgs</a>&gt; <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#a3a4eb4de94585a19bd0d6787487ac88b">CommandMessenger.CmdMessenger.NewLineReceived</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Event handler for one or more lines received. </p>

</div>
</div>
<a class="anchor" id="aa1c1d34c294fbd9bc8c1594be0e46dce"></a><!-- doxytag: member="CommandMessenger::CmdMessenger::NewLineSent" ref="aa1c1d34c294fbd9bc8c1594be0e46dce" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EventHandler&lt;<a class="el" href="class_command_messenger_1_1_command_event_args.html">CommandEventArgs</a>&gt; <a class="el" href="class_command_messenger_1_1_cmd_messenger.html#aa1c1d34c294fbd9bc8c1594be0e46dce">CommandMessenger.CmdMessenger.NewLineSent</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Event handler for a new line sent. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>D:/My Documents/Github/Arduino/Own Arduino libraries/CmdMessenger/Arduino-CmdMessenger/extras/CSharp/CommandMessenger/CmdMessenger.cs</li>
</ul>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 24 2015 23:15:51 for CmdMessenger by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
